#!/bin/bash

# Bing每日壁纸下载脚本
# 功能：下载当日Bing背景图片并保存到本地目录，文件名包含日期信息

# 配置参数
BASE_URL="https://www.bing.com"
API_URL="${BASE_URL}/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"
SAVE_DIR="${HOME}/Pictures/bing_images"  # 图片保存目录
USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"

# 检查依赖项
command -v jq >/dev/null 2>&1 || {
  echo "错误：本脚本需要jq支持，请先安装jq（apt install jq 或 brew install jq）"
  exit 1
}

# 创建保存目录
mkdir -p "$SAVE_DIR" || {
  echo "无法创建目录：$SAVE_DIR"
  exit 1
}

# 获取API响应
response=$(curl -sL -A "$USER_AGENT" "$API_URL") || {
  echo "访问Bing API失败，请检查网络连接"
  exit 1
}

# 解析JSON数据
url_path=$(echo "$response" | jq -r '.images[0].url' 2>/dev/null)
title=$(echo "$response" | jq -r '.images[0].title' 2>/dev/null)
copyright=$(echo "$response" | jq -r '.images[0].copyright' 2>/dev/null)

# 验证数据有效性
if [ -z "$url_path" ] || [[ "$url_path" != *"/"* ]]; then
  echo "获取图片地址失败，API响应可能已变更"
  exit 1
fi

# 构造完整图片URL（使用UHD超高清版本）
img_url="${BASE_URL}${url_path}"
img_url="${img_url/\_1920x1080.jpg/_UHD.jpg}"

# 生成文件名（按日期命名）
file_name="bing_$(date +%Y%m%d).jpg"
save_path="${SAVE_DIR}/${file_name}"

# 下载图片
notify-send "正在下载今日Bing壁纸：${title}"
echo "正在下载今日Bing壁纸：${title}"
echo "版权信息：${copyright}"
curl -sL -A "$USER_AGENT" -o "$save_path" "$img_url" || {
  echo "图片下载失败，请检查网络连接"
  exit 1
}

# 验证下载结果
if [ -f "$save_path" ] && [ $(wc -c < "$save_path") -gt 100000 ]; then
  echo "图片已保存至：${save_path}"
else
  echo "下载文件不完整，可能已被删除"
  rm -f "$save_path" 2>/dev/null
  exit 1
fi
